home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / fb386 / graf / a08.bas < prev    next >
BASIC Source File  |  1993-11-30  |  2KB  |  79 lines

  1. 1000 'A08.BAS**************************************************T.K.MOSAKU
  2. 1010 SCREEN@ 0:WINDOW(0,0)-(640,480)
  3. 1020 CLS
  4. 1030 PALETTE 1,[0,0,255]:PALETTE 3,[255,  0,255]
  5. 1040 PALETTE 2,[0,180,0]:PALETTE 4,[200,200,100]
  6. 1050 A$="☆☆☆ シェルピンスキー曲線を大きさを変えて4度描き重ねています。 ☆☆☆"
  7. 1060 AA$="シェルピンスキー曲線"
  8. 1070 T1=TIME:S=1 
  9. 1080 '
  10. 1090 LEV=2:C=1:GOSUB *MAIN
  11. 1100 WAIT 50
  12. 1110 LEV=3:C=2:GOSUB *MAIN
  13. 1120 AC=LEN(AA$):AD=(80-AC)\2:LOCATE 0,21:PRINT SPACE$(AD)+AA$
  14. 1130 WAIT 100
  15. 1140 LEV=4:C=3:GOSUB *MAIN
  16. 1150 CC=LEN(A$):D=(80-CC)\2:LOCATE 0,23:PRINT SPACE$(D)+A$
  17. 1160 WAIT 100
  18. 1170 LEV=5:C=4:GOSUB *MAIN
  19. 1180 T2=TIME:T=T2-T1:LOCATE 5,1:PRINT "描き上げる時間--";T;"秒  描いた曲線の数--";4;"本" 
  20. 1190 WAIT 100
  21. 1200 GOTO 1690
  22. 1210 '
  23. 1220 *MAIN
  24. 1230  X1=60:Y1=60:XX=60:YY=0
  25. 1240  GOSUB *SETTEI
  26. 1250  FOR I=1 TO 4
  27. 1260    GOSUB *SEN
  28. 1270    LINE STEP(0,0)-STEP(X1,Y1),PSET,%C
  29. 1280    GOSUB *TURN90
  30. 1290  NEXT
  31. 1300  RETURN
  32. 1310 '
  33. 1320 *SETTEI
  34. 1330  X2=320:Y2=240
  35. 1340   FOR I=LEV TO 1 STEP -1
  36. 1350     X1=X1/2:Y1=Y1/2:XX=XX/2:YY=YY/2
  37. 1360     X2=X2-X1:Y2=Y2-Y1:X2=X2-(XX-YY):Y2=Y2-(XX+YY)
  38. 1370   NEXT
  39. 1380   Y2=Y2-Y1
  40. 1390   POINT (X2,Y2)
  41. 1400  RETURN
  42. 1410 '
  43. 1420 *SEN
  44. 1430  IF LEV<=0 THEN RETURN
  45. 1440  LEV=LEV-1
  46. 1450    GOSUB *SEN
  47. 1460    LINE STEP(0,0)-STEP(X1,Y1),PSET,%C
  48. 1470    GOSUB *TURN90
  49. 1480    GOSUB *SEN
  50. 1490    GOSUB *TURN270
  51. 1500    LINE STEP(0,0)-STEP(XX,YY),PSET,%C
  52. 1510    LINE STEP(0,0)-STEP(XX,YY),PSET,%C
  53. 1520    GOSUB *TURN270
  54. 1530    GOSUB *SEN
  55. 1540    LINE STEP(0,0)-STEP(X1,Y1),PSET,%C
  56. 1550    GOSUB *TURN90
  57. 1560    GOSUB *SEN
  58. 1570   LEV=LEV+1
  59. 1580 RETURN
  60. 1590 '
  61. 1600 *TURN90
  62. 1610   TURN_X1=X1:X1=-Y1:Y1=TURN_X1
  63. 1620   TURN_XX=XX:XX=-YY:YY=TURN_XX
  64. 1630  RETURN
  65. 1640 '
  66. 1650 *TURN270
  67. 1660   TURN_X1=X1:X1=Y1:Y1=-TURN_X1
  68. 1670   TURN_XX=XX:XX=YY:YY=-TURN_XX
  69. 1680  RETURN
  70. 1690 '
  71. 1700 C(1)=1:C(2)=2:C(3)=2:C(4)=4
  72. 1710 XL1=190:XL2=449:YL1=111:YL2=368
  73. 1720 FOR L=1 TO 4
  74. 1730   LINE (XL1,YL1)-(XL2,YL2),PSET,%C(L),B
  75. 1740   XL1=XL1-2:XL2=XL2+2:YL1=YL1-2:YL2=YL2+2
  76. 1750 NEXT
  77. 1760 WAIT 200'
  78. 1770 '
  79.